package com.qumitech.visualnovel.datasource.app;


import com.qumitech.visualnovel.pubdef.dto.game.GameStatisticsDTO;
import com.qumitech.visualnovel.pubdef.dto.game.UserGameAccountRecordDTO;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;

public interface GameServiceMapper {

    List<GameStatisticsDTO> gameStatisticsList(@Param("uidList") List<String> uidList,
                                               @Param("gameType") String gameType,
                                               @Param("startInput") Integer startInput,
                                               @Param("endInput") Integer endInput,
                                               @Param("startTime") String startTime,
                                               @Param("endTime") String endTime,
                                               @Param("offset") Integer offset,
                                               @Param("limit") Integer limit,
                                               @Param("orderBy") String orderBy,
                                               @Param("orderType") String orderType,
                                               @Param("tableNames") List<HashMap<String,String>> tableNames
                                               );

    int gameStatisticsListCount(@Param("uidList") List<String> uidList,
                                @Param("gameType") String gameType,
                                @Param("startInput") Integer startInput,
                                @Param("endInput") Integer endInput,
                                @Param("startTime") String startTime,
                                @Param("endTime") String endTime,
                                @Param("tableNames") List<HashMap<String,String>> tableNames
    );

    List<UserGameAccountRecordDTO> listGamerNicknames(@Param("accountId") Integer accountId,
                                                      @Param("offset") Integer offset,
                                                      @Param("limit") Integer limit,
                                                      @Param("orderBy") String orderBy,
                                                      @Param("orderType") String orderType);

    int countGamerNicknames(@Param("accountId") Integer accountId);


}